/*
 * @Author: xiawei 1243162387@qq.com
 * @Date: 2023-12-01 08:02:34
 * @LastEditors: xiawei 1243162387@qq.com
 * @LastEditTime: 2024-04-25 14:27:25
 */
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
// vue组件扩展插件（name设置）
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
import DefineOptions from 'unplugin-vue-define-options/vite'
// 实现路径别名
import { resolve } from 'path'
// 类型自动生成
import dts from 'vite-plugin-dts'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    vueSetupExtend(),
    DefineOptions(),
    dts()
  ],
  server: {
    port: 9000,

    proxy: {
      '^/file': {
        target: 'http://localhost:3000/', //目标源，目标服务器，真实请求地址
        changeOrigin: true, //支持跨域
        rewrite: (path) => path.replace(/^\/file/, "/file"), //重写真实路径,替换/api
      }
    }
  },
  resolve: {
    alias: {
      packages: resolve("packages")
    }
  },
  build: {
    rollupOptions: {
      // 请确保外部化那些你的库中不需要的依赖
      external: ['vue', 'element-plus'],
      output: {
        // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
        globals: {
          vue: 'Vue',
          'element-plus': 'element-plus'
        },
      },
    },
    lib: {
      entry: 'packages/index.ts',
      name: 'vue-custome-components',
      fileName: (format) => `vue-custome-components.${format}.js`,
    },
  },
})
